iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 9
0
Software Development

初探Kotlin系列 第 9

[Day 9] Classes and Inheritance-1

  • 分享至 

  • xImage
  •  

Class

kotlin宣告class方式與java一樣

class Invoice {
}

Constructors

kotlin的class會有一個primary constructor
以及一個或多個的secondary constructors

primary constructor主要寫在class name後方

class Person constructor(firstName: String) {
}

如果primary constructor沒有任何的annotations
constructor關鍵字可省略

class Person(firstName: String) {
}

primary constructor內不可包含任何code
想要初始化的話可以寫在 init{...}

class InitOrderDemo(name: String) {
    init {
        println("hello"+name)
    }
}

primary constructor的參數初始化可在init{}

class Customer(name: String) {
    val customerKey = name.toUpperCase()
}

或者有更簡潔的寫法

class Person(val firstName: String, val lastName: String, var age: Int) {
    // ...
}

如果沒宣告成變數 在class內部會編譯錯誤

Secondary Constructors

使用constructor 宣告secondary constructors

class Person {
    constructor(parent: Person) {
        parent.children.add(this)
    }
}

如果class有primary constructor
則secondary constructors需要透過this直接或間接的呼叫primary constructor

class Person(val name: String) {
    constructor(name: String, parent: Person) : this(name) {
        parent.children.add(this)
    }
}

上一篇
[Day 8] Returns and Jumps
下一篇
[Day 10] Classes and Inheritance-2
系列文
初探Kotlin19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言